The present invention relates in general to a system and method for generating a summary of data within a data store, such as a database, and in specific to a system and method which provide a computer program that generates computer executable software code for creating a summary of a data store as specified by a user.
The information technology age has lead to an increasingly large amount of data being collected and stored in various formats. Users, including companies, depend heavily on electronically stored data, and often require efficient methods for retrieving the stored data. For instance, large databases are often maintained on computer systems, which may comprise a large number of data records. Generally, users may query the database to retrieve desired information therefrom. Of course, many different methods for storing (and organizing) data are available. A collection of data is referred to generally herein as a xe2x80x9cdata store,xe2x80x9d and is intended broadly to refer to any type of data storage method, including without limitation databases (such as relational databases), text-based flat files, and tables.
Generally, as the number of different data stores maintained increases, it becomes increasingly difficult for a user to obtain a desired summary of the data contained within a data store. As one example, consider a network management system which stores data for various network elements (e.g., devices communicatively coupled to the network). For instance, a network management system may manage various networks, including wireline, wireless, and Internet Protocol (IP) networks, and may maintain data stores for the various elements of each network type. Of course, many different data stores may be maintained, each having a different format. For example, a first telephone switch may be included within the managed network, and a data store may be maintained for the first telephone switch, which includes various fields of various types (e.g., numeric data, character-based data, timestamp data, etcetera). For instance, such a data store may include a time field having timestamp format, a month field having character (text) format, a year field having numeric format, and a usage field having numeric format. Another network element (e.g., another telephone switch or other network device) may be included within the managed network, and a data store may be maintained for such network element in a similar manner. Of course, the data store for this network element may include different fields, which may include different types of data than included in the data store for the first telephone switch.
Often, a user desires to obtain a summary of a data store. For example, in the above-described network management system, a user may desire to obtain a summary of the usage of the first telephone switch during the month of April. Most modern-day database technologies provide support for some form of database summarization against user-defined data stores. However, as each data store is defined, computer executable software code must be written to define how to summarize the data store. That is, an end user is typically required to manually write software code to query the data store and summarize its data in the manner desired by the user. Thus, in the prior art, an end user is typically required to manually write software code for summarizing data within a data store for each type of summary desired by the end user. Additionally, because each data store may have a different format, an end user is further required to manually write separate software code for summarizing each of the various types of data stores in the manner desired by the end user. As a result, significant amount of development overhead is typically required to support data stores in a manner that enables an end user to obtain a desired summary of such data stores.
The present invention is directed to a system and method which utilize a computer executable software program to generate software code for constructing desired summary data for one or more data stores. A preferred embodiment of the present invention provides a computer executable software program that is capable of dynamically creating application software code for summarizing one or more data stores in the manner desired by an end user. More specifically, a preferred embodiment provides a software program which enables a user to define a desired (or customized) summary, and the software program then generates the necessary software code for achieving the desired summary.
The generated software may be executed to xe2x80x9cconstructxe2x80x9d the desired summary of one or more data stores. More specifically, the generated software code may be executed to xe2x80x9cconstructxe2x80x9d a data summary from one or more data stores. In a preferred embodiment, the resulting summary data may be obtained either directly from one or more data stores, or indirectly from such one or more data stores, e.g., the data retrieved from such one or more data stores may be manipulated in some manner by the generated software code to xe2x80x9cconstructxe2x80x9d the desired summary data. For instance, in a most preferred embodiment, the computer program for generating software code for constructing desired summary data may be implemented within a management system (e.g., a network management system), and data stores may include performance data for one or more network elements being managed by such management system. In a preferred embodiment, a user may request a summary that includes data retrieved directly from one or more data stores, and/or data that can be constructed through manipulation of the data stored within such one or more data stores (e.g., through mathematical operations with such stored data). Therefore, when the present disclosure describes that the generated software code constructs the desired summary data from one or more data stores, it should be recognized that such xe2x80x9cconstructingxe2x80x9d is not limited merely to directly retrieving the data from the one or more data stores, but is intended to also encompass manipulating data retrieved from such one or more data stores (e.g., through performing mathematical operations with such data) in order to xe2x80x9cconstructxe2x80x9d the desired summary data.
Upon executing the generated software code, a desired summary is obtained, which may be stored within a xe2x80x9csummary data storexe2x80x9d and/or included within a summary report. For instance, upon executing the generated software code, such software code may create a new xe2x80x9csummary data storexe2x80x9d in which the desired summary report is stored, and a user may generate a report that may be displayed to a display or printed to a printer, as examples, (or otherwise retrieve information) from the summary data store. Thus, in a most preferred embodiment, the generated software code may dynamically create user-defined xe2x80x9csummary data storesxe2x80x9d that summarize one or more of other data stores.
Accordingly, the user is not required to manually write the code for the desired summary. That is, in a preferred embodiment, a user interacts with a software program (e.g., through a graphical user interface) to provide a summary definition (e.g., specifying a summary of one or more data stores desired by the user), and the software code for achieving the summary is generated by the software program, rather than the user being required to manually write such software code. As a result, desired information can be obtained from one or more data store more easily and more efficiently than with prior art techniques.
The foregoing has outlined rather broadly the features and technical advantages of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter which form the subject of the claims of the invention. It should be appreciated by those skilled in the art that the conception and specific embodiment disclosed may be readily utilized as a basis for modifying or designing other structures for carrying out the same purposes of the present invention. It should also be realized by those skilled in the art that such equivalent constructions do not depart from the spirit and scope of the invention as set forth in the appended claims. The novel features which are believed to be characteristic of the invention, both as to its organization and method of operation, together with further objects and advantages will be better understood from the following description when considered in connection with the accompanying figures. It is to be expressly understood, however, that each of the figures is provided for the purpose of illustration and description only and is not intended as a definition of the limits of the present invention.